class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        deque<int> que;
        vector<int> ans(temperatures.size(), 0);
        for (int i = 0; i < temperatures.size(); i++)
        {
            while (!que.empty() && temperatures[que.back()] < temperatures[i])
            {
                ans[que.back()] = i - que.back();
                que.pop_back();
            }
            que.push_back(i);
        }
        while (!que.empty())
        {
            ans[que.back()] = 0;
            que.pop_back();
        }
        return ans;
    }
};